Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье приводятся дополнительные замечания к справочной документации по этому API.
Метод ChangeItemKey(TItem, TKey) не изменяет внедренный в item
ключ; он просто заменяет ключ, сохраненный в словаре сопоставления. Таким образом, если newKey
, ключ отличается от встраиваемого в item
ключа, то вы не можете получить доступ к item
с помощью ключа, возвращённого GetKeyForItem.
Этот метод ничего не делает, если у KeyedCollection<TKey,TItem> нет словаря подстановки.
Каждый ключ в объекте KeyedCollection<TKey,TItem> должен быть уникальным. Ключ не может быть null
.
Этот метод является операцией O(1).
Заметки для разработчиков
Перед изменением ключа, встроенного в элемент, необходимо вызвать этот метод, чтобы обновить ключ в словаре поиска. Если порог создания словаря равен -1, вызов этого метода не требуется.
Не делайте метод ChangeItemKey публичным методом производного класса. Неправильное использование этого метода выводит словарь подстановки из синхронизации с ключами элементов. Например, сначала установка ключа на null
, а затем на другое значение добавляет несколько ключей для элемента в словарь поиска. Экспонируйте этот метод внутренне, чтобы разрешить изменяемые ключи элементов: когда ключ элемента изменяется, этот метод используется для изменения ключа в словаре поиска.